﻿using Brc_PaaS.Common.Entity;
using Brc_PaaS.Common.Model.Basic;
using Brc_PaaS.Common.Model.Exceptionless;
using System;
using System.Collections.Generic;
using System.Text;

namespace Brc_PaaS.Bll.Exceptionless
{
    public interface IExceptionlessLog
    {
        /// <summary>
        /// 创建项目
        /// </summary>
        /// <param name="systemInfo"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        BaseResponseModel CreateProject(Bas_System systemInfo, string accountId,string token);

        /// <summary>
        /// 写入异常
        /// </summary>
        /// <param name="model"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        BaseResponseModel WriteException(ElpCreateExceptionReqModel model,string token);
        /// <summary>
        /// 写入日志
        /// </summary>
        /// <param name="model"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        BaseResponseModel WriteLog(ElpCreateLogReqModel model,string token);

        /// <summary>
        /// 查询日志
        /// </summary>
        /// <param name="model"></param>
        /// <param name="total"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        ResponseModel<List<EplSearchEventResModel>> QueryEvents(EplSearchEventReqModel model, out int total,string token);

        /// <summary>
        /// 查询日志详情
        /// </summary>
        /// <param name="eventId"></param>
        /// <returns></returns>
        ResponseModel<EplSearchExceptionDetailModel> GetEventDetail(string eventId,string token);

        /// <summary>
        /// 获取Exceptionless信息从数据库
        /// </summary>
        /// <param name="systemId"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        ResponseModel<Ass_Exceptionless> GetExceptionlessInfo(string systemId);

        /// <summary>
        /// 禁用exceptionless信息
        /// </summary>
        /// <param name="id"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        ResponseModel<Ass_Exceptionless> DisableExceptionless(string id);

        /// <summary>
        /// 登录Exceptionless,获取Token
        /// </summary>
        /// <param name="loginModel"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        ResponseModel<TokenModel> Login(EplLoginModel loginModel);


    }
}
